home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 26 / AACD 26.iso / AACD / Programming / AllPlaton / Unsorted / GfxRotator.AMOS / GfxRotator.amosSourceCode
Encoding:
AMOS Source Code  |  1998-01-07  |  3.0 KB  |  136 lines

  1. F$="Work:Project/KnockOFF/Cars/RacerFirstFrame.iff"
  2. Load Iff F$,0
  3.  Extension_8_0456 F$,9
  4. WX=128 : WY=128 : WXH=WX/2 : WYH=WY/2
  5. Screen Open 1,WX,WY,16,0
  6. Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 
  7. Get Palette 0
  8. R=32
  9. Degree 
  10. Gosub MASKSTYRES
  11. Gosub BODIES
  12. End 
  13. BODIES:
  14.   OX=128 : OY=0
  15.   BASF$="C4D:SubFrames/Racer/04Body."
  16.   FRM=0
  17.   For W=0 To 31
  18.     Gosub ROT
  19.     Gosub SAVPIC
  20.     Inc FRM
  21.   Next 
  22.   For BOD=1 To 7
  23.     BASS$="C4D:SubFrames/Racer/04Body."
  24.     BASF$="C4D:SubFrames/Racer/"+ Extension_8_0EB8(BOD+4,2)+"Body."
  25.     If BOD=1
  26.       SC0=$8C : SC1=$4A : SC2=0
  27.       EC0=$EF : EC1=$94 : EC2=8
  28.     End If 
  29.     If BOD=2
  30.       SC0=123 : SC1=0 : SC2=140
  31.       EC0=214 : EC1=8 : EC2=239
  32.     End If 
  33.     If BOD=3
  34.       SC0=0 : SC1=99 : SC2=140
  35.       EC0=8 : EC1=181 : EC2=239
  36.     End If 
  37.     If BOD=4
  38.       SC0=49 : SC1=140 : SC2=0
  39.       EC0=99 : EC1=239 : EC2=8
  40.     End If 
  41.     If BOD=5
  42.       SC0=181 : SC1=181 : SC2=0
  43.       EC0=247 : EC1=247 : EC2=41
  44.     End If 
  45.     If BOD=6
  46.       SC0=0 : SC1=140 : SC2=123
  47.       EC0=8 : EC1=239 : EC2=222
  48.     End If 
  49.     If BOD=7
  50.       SC0=132 : SC1=115 : SC2=0
  51.       EC0=239 : EC1=214 : EC2=8
  52.     End If 
  53.     For FRM=0 To 31
  54.        Extension_8_048E BASS$+ Extension_8_0EB8(FRM,4) To BASF$+ Extension_8_0EB8(FRM,4)
  55.       Gosub CHGPAL
  56.     Next 
  57.   Next 
  58. Return 
  59. MASKSTYRES:
  60.   OX=0 : OY=0
  61.   BASF$="C4D:SubFrames/Racer/00Mask."
  62.   FRM=0
  63.   For W=0 To 31
  64. '    Gosub ROT 
  65. '    Gosub SAVPIC
  66.     Inc FRM
  67.   Next 
  68.   OX=32 : OY=0
  69.   BASF$="C4D:SubFrames/Racer/01Tyres1."
  70.   FRM=0
  71.   SC0=87 : SC1=87 : SC2=87
  72.   EC0=153 : EC1=153 : EC2=153
  73.   For W=0 To 31
  74.     Gosub ROT
  75.     Gosub SAVPIC
  76.     Gosub CHGPAL
  77.     Inc FRM
  78.   Next 
  79.   OX=64 : OY=0
  80.   BASF$="C4D:SubFrames/Racer/02Tyres2."
  81.   FRM=0
  82.   For W=0 To 31
  83.     Gosub ROT
  84.     Gosub SAVPIC
  85.     Gosub CHGPAL
  86.     Inc FRM
  87.   Next 
  88.   OX=96 : OY=0
  89.   BASF$="C4D:SubFrames/Racer/03Tyres3."
  90.   FRM=0
  91.   For W=0 To 31
  92.     Gosub ROT
  93.     Gosub SAVPIC
  94.     Gosub CHGPAL
  95.     Inc FRM
  96.   Next 
  97. Return 
  98. End 
  99. ROT:
  100.   WW#=W*360.0/32.0
  101.   SI#=Sin(WW#)*R
  102.   CO#=Cos(WW#)*R
  103.   For Y=0 To 127
  104.     For X=0 To 127
  105. '      XX=(Qcos(W,R*(X-WXH))+Qsin(W,R*(Y-WYH)))/WX+16
  106. '      YY=(Qsin(W,R*(X-WXH))-Qcos(W,R*(Y-WYH)))/WY+16
  107.       XX=(CO#*(X-WXH)+SI#*(Y-WYH))/WX+16
  108.       YY=(SI#*(X-WXH)-CO#*(Y-WYH))/WY+16
  109.       Screen 0 : P= Extension_8_039E( Extension_8_1632(XX,0 To 31)+OX, Extension_8_1632(YY,0 To 31)+OY)
  110.       Screen 1 : Extension_8_0388 X,Y,P
  111.     Next 
  112.   Next 
  113. Return 
  114. SAVPIC:
  115.   XXX=Free
  116.   Screen 1
  117.   Save Iff BASF$+ Extension_8_0EB8(FRM,4)
  118.    Extension_8_0456 BASF$+ Extension_8_0EB8(FRM,4),10
  119.   SRC=Hunt(Start(9) To Start(9)+Length(9),"CMAP")
  120.   TAR=Hunt(Start(10) To Start(10)+Length(10),"CMAP")
  121.   Copy SRC+8,SRC+8+16*3 To TAR+8
  122.    Extension_8_0472 BASF$+ Extension_8_0EB8(FRM,4),10
  123. Return 
  124. CHGPAL:
  125.    Extension_8_0456 BASF$+ Extension_8_0EB8(FRM,4),10
  126.   TAR=Hunt(Start(10) To Start(10)+Length(10),"CMAP")
  127.   For CO=0 To 5
  128.     CC0=(SC0*CO+EC0*(5-CO))/5
  129.     CC1=(SC1*CO+EC1*(5-CO))/5
  130.     CC2=(SC2*CO+EC2*(5-CO))/5
  131.     Poke TAR+8+(CO+2)*3,CC0
  132.     Poke TAR+9+(CO+2)*3,CC1
  133.     Poke TAR+10+(CO+2)*3,CC2
  134.   Next 
  135.    Extension_8_0472 BASF$+ Extension_8_0EB8(FRM,4),10
  136. Return